package com.guxingke.typecho4j.util;

/**
 * 分页工具类
 * 
 * @author GUXINGKE
 *
 */
public class PageUtil {

	private PageUtil() {
	}

	/**
	 * 获取分页代码
	 * 
	 * @param targetUrl
	 *                目标地址
	 * @param totalNum
	 *                总记录数
	 * @param currentPage
	 *                当前页
	 * @param pageSize
	 *                每页大小
	 * @return
	 */
	public static String getPagation(String targetUrl, int totalNum,
			int currentPage, int pageSize) {
		int totalPage = totalNum % pageSize == 0 ? totalNum / pageSize
				: totalNum / pageSize + 1;
		if (totalPage == 0) {
			return "<font color=red>未查询到数据！</font>";
		}

		if (totalPage == 1) {
			return null;
		}

		StringBuffer pageCode = new StringBuffer();

		pageCode.append("<ol class='page-navigator'>");

		if (currentPage > 3) {
			pageCode.append("<li><a href='" + targetUrl
					+ "?page=1'>首页</a></li>");
		}

		if (!(currentPage == 1)) {
			pageCode.append("<li><a href='" + targetUrl + "?page="
					+ (currentPage - 1) + "'>上一页</a></li>");
		}

		for (int i = currentPage - 2; i <= currentPage + 2; i++) {
			if (i < 1 || i > totalPage) {
				continue;
			}

			if (i == currentPage) {
				pageCode.append("<li class='current'><a href='#'>"
						+ i + "</a></li>");
			} else {
				pageCode.append("<li><a href='" + targetUrl
						+ "?page=" + i + "'>" + i
						+ "</a></li>");
			}

		}

		if (!(currentPage == totalPage)) {
			pageCode.append("<li><a href='" + targetUrl + "?page="
					+ (currentPage + 1) + "'>下一页</a></li>");
		}

		if ((totalPage - currentPage) > 3) {
			pageCode.append("<li><a href='" + targetUrl + "?page="
					+ totalPage + "'>尾页</a></li>");
		}

		pageCode.append("</ol>");

		return pageCode.toString();
	}
}
